home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 January: Mac OS SDK / Dev.CD Jan 96 SDK / Dev.CD Jan 96 SDK1.toast / Development Kits (Disc 1) / OpenTransport / Open Transport 1.0.5b4 / Open Transport SDK / Open Tpt Module Developer / Includes / OpenTptDevSerial.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-24  |  2.8 KB  |  135 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        OpenTptDevSerial.h
  3.  
  4.     Contains:    Definition of the Serial Family and Group objects
  5.  
  6.     Copyright:    © 1994-1995 by Apple Computer, Inc., all rights reserved.
  7.  
  8. */
  9.  
  10. #ifndef __OPENTPTDEVSERIAL__
  11. #define __OPENTPTDEVSERIAL__
  12.  
  13. #ifdef __cplusplus
  14.     #ifndef __OPENTPTMODULECLASSES__
  15.     #include <OpenTptModuleClasses.h>
  16.     #endif
  17. #else
  18.     #ifndef __OPENTPTMODULE__
  19.     #include <OpenTptModule.h>
  20.     #endif
  21. #endif
  22. #ifndef __OPENTPTSERIAL__
  23. #include <OpenTptSerial.h>
  24. #endif
  25.  
  26. #if defined(__MWERKS__) && GENERATING68K
  27. #pragma pointers_in_D0
  28. #endif
  29.  
  30. /*******************************************************************************
  31. ** Configuration Structure
  32. ********************************************************************************/
  33.  
  34. enum
  35. {
  36.     kSerialPrefsVersion        = 1,
  37.     kSerialConfigVersion    = 1,
  38.     kSerialConfigIndex        = 0,
  39.     kSerialNumGenerics        = 4
  40. };
  41.  
  42. struct SerialPreferences
  43. {
  44.     OTPreferencesFields(1);
  45. };
  46.  
  47. struct SerialConfig
  48. {
  49.     UInt16        fVersion;
  50.     UInt16        fFiller;
  51.     UInt32        fBaudRate;
  52.     UInt16        fHandshake;
  53.     UInt8        fOnChar;
  54.     UInt8        fOffChar;
  55.     UInt8        fDataBits;
  56.     UInt8        fStopBits;
  57.     UInt8        fParity;
  58.     UInt8        fFillerBytes[3];
  59.     size_t        fRcvBufSize;
  60.     size_t        fSndBufSize;
  61.     size_t        fRcvLoWat;
  62.     size_t        fSndLoWat;
  63. };
  64.  
  65. struct TSerialFamily;
  66.  
  67. #ifdef __cplusplus
  68. extern "C" {
  69. #endif
  70.  
  71. TSerialFamily*    OTGetSerialFamily();
  72.  
  73. #ifdef __cplusplus
  74. }
  75. #endif
  76.  
  77.  
  78. /*******************************************************************************
  79. ** TSerialFamily
  80. ********************************************************************************/
  81.  
  82. #ifdef __cplusplus
  83.  
  84. #if GENERATING68K || MPS_USES_ASLM
  85. #define kTSerialFamilyID    kOTKernelPrefix "SrlFmly,1.0"
  86. #endif
  87.  
  88. class TSerialFamily : public TStreamFamily
  89. {
  90.     public:
  91.                                     _CT TSerialFamily();
  92.         virtual                        _DT TSerialFamily();
  93.         
  94.         static    TSerialFamily*        _CDECL GetFamily();
  95.                                 
  96.         virtual    OTUnixErr            _MDECL CreateDefaultPreferences(OTPortRef, void** prefPtr);
  97.  
  98.     private:
  99.         static TSerialFamily*        gSerialFamily;
  100. };
  101.  
  102. /*******************************************************************************
  103. ** TSerialGroup
  104. ********************************************************************************/
  105.  
  106. #if GENERATING68K || MPS_USES_ASLM
  107. #define kTSerialGroupID        kOTKernelPrefix "SrlGrp,1.0"
  108. #endif
  109.  
  110. class TSerialGroup : public TStreamGroup
  111. {
  112.     public:
  113.                             _CT TSerialGroup(const char*);
  114.         virtual                _DT TSerialGroup();
  115.         
  116.                   void        GetSerialPreferences(SerialConfig**);
  117. };
  118.  
  119. /*    -------------------------------------------------------------------------
  120.     Inline methods for TSerialGroup
  121.     ------------------------------------------------------------------------- */
  122.  
  123.     inline void TSerialGroup::GetSerialPreferences(SerialConfig** cfigPtr)
  124.     {
  125.         GetFamily()->GetPreferences(fPort, kSerialConfigIndex, (void**)cfigPtr);
  126.     }
  127.     
  128. #endif
  129.  
  130. #if defined(__MWERKS__) && GENERATING68K
  131. #pragma pointers_in_A0
  132. #endif
  133.  
  134. #endif
  135.